﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAO;
using DTO;

namespace BUS
{
    public class KhuyenMai_BUS
    {
        KhuyenMai_DAO khuyenMaiDAO = new KhuyenMai_DAO();
        /// <summary>
        /// Lấy tất cả danh sách khuyến mãi
        /// </summary>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSach_KhuyenMai()
        {
            try
            {
                return khuyenMaiDAO.LayDanhSach_KhuyenMai();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy danh sách theo tên khuyến mãi
        /// </summary>
        /// <param name="tenKhuyenMai"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoTen_KhuyenMai(string tenKhuyenMai)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoTen_KhuyenMai(tenKhuyenMai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy danh sách theo giá khuyến mãi
        /// </summary>
        /// <param name="giaKhuyenMai"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoGia_KhuyenMai(int giaKhuyenMai)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoGia_KhuyenMai(giaKhuyenMai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy danh sách theo ngày bắt đầu khuyến mãi
        /// </summary>
        /// <param name="ngayBatDau"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoNgayBatDau_KhuyenMai(DateTime ngayBatDau)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoNgayBatDau_KhuyenMai(ngayBatDau);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lây danh sách trong một phạm vi ngày tháng nào đó
        /// </summary>
        /// <param name="ngayBD"></param>
        /// <param name="ngayKT"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoNgayThang_KhuyenMai(DateTime ngayBD, DateTime ngayKT)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoNgayThang_KhuyenMai(ngayBD, ngayKT);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy danh sách theo mã loại khuyến mãi
        /// </summary>
        /// <param name="maLoaiKhuyenMai"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoMaLoaiKhuyenMai_KhuyenMai(int maLoaiKhuyenMai)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoLoaiKhuyenMai_KhuyenMai(maLoaiKhuyenMai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy danh sách theo tình trạng khuyến mãi
        /// </summary>
        /// <param name="tinhTrang"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoTinhTrang_KhuyenMai(int tinhTrang)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoTinhTrang_KhuyenMai(tinhTrang);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy danh sách theo mã doanh nghiệp
        /// </summary>
        /// <param name="maDoanhNghiep"></param>
        /// <returns></returns>
        public List<KhuyenMai> LayDanhSachTheoMaDoanhNghiep_KhuyenMai(int maDoanhNghiep)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoMaDoanhNghiep_KhuyenMai(maDoanhNghiep);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Thêm một sản phẩm khuyến mãi mới
        /// </summary>
        /// <param name="khuyenMai"></param>
        /// <returns></returns>
        public bool Them_KhuyenMai(KhuyenMai khuyenMai)
        {
            try
            {
                return khuyenMaiDAO.Them_KhuyenMai(khuyenMai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Cập nhật thông tin một sản phẩm khuyến mãi, không cập nhật Mã Khuyến Mãi
        /// </summary>
        /// <param name="maKhuyenMai"></param>
        /// <param name="khuyenMai"></param>
        /// <returns></returns>
        public bool Sua_KhuyenMai(KhuyenMai khuyenMai)
        {
            try
            {
                return khuyenMaiDAO.Sua_KhuyenMai(khuyenMai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Xóa nhưng thực ra là update trạng thái xóa của sản phẩm khuyến mãi này.
        /// </summary>
        /// <param name="maKhuyenMai"></param>
        /// <returns></returns>
        public bool Xoa_KhuyenMai(KhuyenMai khuyenmai)
        {
            try
            {
                return khuyenMaiDAO.Xoa_KhuyenMai(khuyenmai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        /// <summary>
        /// Luc
        /// </summary>
        /// <param name="maKhuyenMai"></param>
        /// <returns></returns>
        public KhuyenMai KhuyenMai_MaKhuyenMai(int maKhuyenMai)
        {
            try
            {
                return khuyenMaiDAO.KhuyenMai_MaKhuyenMai(maKhuyenMai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        /// <summary>
        /// Lấy danh sách khuyến mãi theo loại ====== Sanh Cap Nhat
        /// </summary>
        /// <returns></returns>
        public IQueryable LayDanhSachTheoTheLoai(int maloai)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoTheLoai(maloai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        /// <summary>
        /// Lấy Danh Sách Đã Đăng  == sanh
        /// </summary>
        /// <param name="loai"></param>
        /// <returns></returns>
        public IQueryable LayDanhSachTheoDaDang(int loai)
        {
            try
            {
                return khuyenMaiDAO.LayDanhSachTheoDaDang(loai);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}
